package com.lipaluma.excel.annotations.config;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.lipaluma.excel.config.ExcelExtension;

/**
 * Annotation define the configuration for Excel file. <br/>
 * 
 * If the sheetIndex, neither the sheetName is initialized, the process is configured to take the sheet 0 by default.
 * @author Mario
 */
@Documented
@Inherited
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Excel {
	/**
	 * define the index of the sheet of the Excel File. <br/>
	 * If = -1, the value is not initialized and will choose the sheet name
	 */
	int sheetIndex() default -1;
	
	/**
	 * define the sheet name of the xls file
	 */
	String sheetName() default "";

	boolean mapColumnsByHeaders() default false;

	int nbLinesHeader() default 1;

	int headerLine() default 1;

	boolean hasHeader() default false;

	boolean writeHeader() default false;

	ExcelExtension extension();
}
